###
 # @Author: Clark
 # @Email: haixuanwoTxh@gmail.com
 # @Date: 2021-12-01 11:33:58
 # @LastEditors: Clark
 # @LastEditTime: 2021-12-01 11:54:43
 # @Description: file content
###

# 原生bash不支持简单的数学运算，但是可以通过其他命令来实现，例如 awk 和 expr，expr 最常用

# 1、算数运算符

val=`expr 2 + 2`    # 表达式和运算符之间要有空格，例如 2+2 是不对的，必须写成 2 + 2。完整的表达式要被 ` ` 包含
echo "两数之和为 : $val"

a=100
b=100
if [ $a == $b ]     # 条件表达式要放在方括号之间，并且要有空格
then
   echo "a ==等于 b"
fi

# 2、关系运算符
# -eq -ne
if [ $a -eq $b ]
then
   echo "a eq等于 b"
fi


# 3、布尔运算符
# -a与，-o或, !非
if [ $a != 119 ]
then
   echo "3 a != b"
fi

# 4、逻辑运算
# || &&
if [[ $a -lt 100 && $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

# 5、字符串运算符
# =	检测两个字符串是否相等，相等返回 true。	[ $a = $b ] 返回 false。
# !=	检测两个字符串是否不相等，不相等返回 true。	[ $a != $b ] 返回 true。
# -z	检测字符串长度是否为0，为0返回 true。	[ -z $a ] 返回 false。
# -n	检测字符串长度是否不为 0，不为 0 返回 true。	[ -n "$a" ] 返回 true。
# $	检测字符串是否为空，不为空返回 true。	[ $a ] 返回 true。
str=tan
if [ -z $str ]
then
   echo "-z $str : 字符串长度为0"
else
   echo "-z $str : 字符串长度不为0"
fi

# 6、文件测试运算符
# -d file	检测文件是否是目录，如果是，则返回 true。	[ -d $file ] 返回 false。
# -f file	检测文件是否是普通文件（既不是目录，也不是设备文件），如果是，则返回 true。
# -r file	检测文件是否可读，如果是，则返回 true。	[ -r $file ] 返回 true。
# -w file	检测文件是否可写，如果是，则返回 true。	[ -w $file ] 返回 true。
# -x file	检测文件是否可执行，如果是，则返回 true。	[ -x $file ] 返回 true。
# -s file	检测文件是否为空（文件大小是否大于0），不为空返回 true。	[ -s $file ] 返回 true
if [ -x $0 ]
then
   echo "文件可执行"
else
   echo "文件不可执行"
fi
